Python 正则表达式替换 : separate backreference from digit
全部标签 我正在尝试获取一组可能有或没有分隔符的数字,并以标准格式返回它们。以SSN为例:ex1="Anexample123-45-6789"ex2="123.45.6789somemorethings"ex3="123456789thankyouRubymayIhaveanother"都应该进入返回“123-45-6789”的方法基本上,除数字或字母外的任何内容(包括任何内容)都应返回XXX-XX-XXXX格式的SSN。stumping的部分是正则表达式识别不能有任何东西的方式。到目前为止,我在识别我的ssn方面有什么:defformat_ssns(string)string.scan(/\d
不知道这个术语叫什么(替换?),但在python中如果你输入num1=4num2=2print("Luckynumbers:%d%d"%(num1,num2))你得到“幸运数字:42”我如何在ruby中执行此操作?尝试执行上述场景,如果我有一个变量,它就可以工作,但如果我需要在多个变量中进行子操作,则括号不是有效语法。 最佳答案 您可以在Ruby中使用称为字符串插值的东西来完成此操作。例如:num1=4num2=2puts"Luckynumbers:#{num1}#{num2}";这里,#{}中的每个变量都不是字符串而是被解释为
我只想替换这个表达式中括号中的组:my_string.gsub(/(.)*/,'replace_text')所以我得到:replace_text我知道我可以重复整个MARKER_START和MARKER_END替换表达式中的block,但我认为应该有更简单的方法来执行此操作。 最佳答案 您可以使用zerowidthlook-aheadandlook-behindassertions来完成.这个正则表达式应该在ruby1.9和perl以及许多其他地方工作:注意:ruby1.8仅支持先行断言。您需要前瞻性和后视性才能正确执行此操作。
Python中有一个我喜欢的库,叫做“Requests”。Requests是一个基于urllib3的HTTP客户端。“requestsdoc”。我正在Ruby中寻找类似的东西。基本上我需要的是:上传文件支持(多部分/表单数据)。轻松获取/发布。Cookie可以从响应对象传递到请求对象(手动构建登录脚本)。稳定且灵活。session支持(如果我们没有,则不必手动处理cookie)。我查看了Typhoeus,但主页中的代码示例不起作用;他们已经移动了代码,get方法不再像那样可以直接访问,所以它开始得不好。Curb看起来不错,我喜欢cURL,还有rest-client,它似乎很受欢迎,而e
我不太确定我了解非捕获组的工作原理。我正在寻找一个正则表达式来产生这个结果:5.214。我认为下面的正则表达式可以工作,但它正在替换所有内容,包括非捕获组。如何编写一个正则表达式来仅替换捕获组?"5,214".gsub(/(?:\d)(,)(?:\d)/,'.')#=>".14"我想要的结果:"5,214".gsub(some_regex)#=>"5.214 最佳答案 非捕获组仍然消耗匹配使用"5,214".gsub(/(\d+)(,)(\d+)/,'\1.\3')或者"5,214".gsub(/(?
给定一个字符串如下:randomstring1-randomstring2-3df83eeff2我如何使用ruby正则表达式或其他一些ruby/rails友好的方法来查找第一个破折号之前的所有内容-在上面的例子中是:randomstring1谢谢 最佳答案 你可以使用这个模式:^[^\-]* 关于ruby-on-rails-ruby正则表达式-如何匹配所有内容直到字符-,我们在StackOverflow上找到一个类似的问题: https://stack
这是一本书中的示例代码。我假设它适用于Ruby1.8。birthyear=1986generation=casebirthyearwhen1946...1963:"Babyboomer"when1964...1976:"GenerationX"when1977...2012:"newgeneration"elsenilendputsgeneration我在Ruby1.9上运行它,得到了这个错误信息:Untitled2.rb:12:syntaxerror,unexpected':',expectingkeyword_thenor','or';'or'\n'when1946...1963:
谁能解释一下我如何在Ruby中使用正则表达式来只返回字符串的匹配项。例如,如果代码读取一个包含一系列名称的.txt文件:JohnSmithJamesJonesDavidBrownTomDavidsonetcetc..并且要匹配的单词被输入为“ohn”,然后它只会返回“JohnSmith”,但不会返回任何其他名字。 最佳答案 注意:在现代Rubies中,不要使用File.each_line,而是使用IO.foreach。例如:[1]pry(main)>IO.foreach('./.bashrc')do|l|[1]pry(main)*p
我正在我的应用程序中开发一种引用机制,例如,应该可以在评论表单中简单地键入#26以引用该主题的评论26。为了首先检查用户是否想引用一条或多条评论,我在current_user.comments.build之后和@comment.save之前放置了一个if条件。但是,只是为了让我的问题更笼统和更容易适应:if@comment.content.include?(/\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i)我想要这样的东西。该示例用于检查评论的内容是否包含电子邮件。但从逻辑上讲,我收到“无法将正则表达式转换为字符串”错误。您如何进行包含?使用正则表达式的Rail
这是Ruby1.8.7但应该与1.9.x相同我正在尝试拆分一个字符串,例如:a="foo.bar.size.split('.').last"#tryingtosplitinto["foo","bar","split('.')","last"]基本上将它分成它所代表的命令,我正在尝试使用Regexp但不确定如何,我的想法是使用regexpa.split(/[a-z\(\)](\.)[a-z\(\)]/)这里尝试使用组(\.)来拆分它,但这似乎不是一个好方法。 最佳答案 我认为这样做可以:a.split(/\.(?=[\w])/)我不知